With the evolution of new digital video standards, video compression formats are continuously evolving. One of the most commonly utilized video formats is MPEG-2 (ISO/IEC 13818-2). A next generation offshoot of the MPEG-2 standard, which is likely to become widespread, is MPEG-4 AVC, also known as ITU H.264 (ISO/IEC 14496-10), and referred to as “AVC.” Existing pixel interpolation techniques and algorithms, such as the AVS (Advanced Video Standard) algorithm, require at least three passes. Such three-pass interpolation techniques and algorithms are generally complex and do not provide satisfactory compensation results.
The AVS specification (outlined in “Information Technology, Advanced Audio Video Coding, Part 2: Video,” Committee Draft, 2003) utilizes three simple interpolation filters (two 4-tap filters and one 2-tap filter) to derive sub-pixel sample values for the purpose of inter-picture prediction, such as motion compensation (ME). Depending on the position of the sub-pixel sample position, three or more passes of filtering may be applied in order to get the interpolated sample value. Similar three-pass interpolation algorithms may be utilized, such as the MPEG AVC (or H.264) standard (outlined in ITU-T Rec. H.264 | ISO/IEC 14496-10, version JVT-I050). Such three-pass interpolation algorithms, however, are generally complex and may not provide satisfactory compensation results.
FIG. 1 is an illustration of conventional AVS and AVC three-pass interpolation for motion compensation. Referring to FIG. 1, there are illustrated sample interpolated sub-pixel and integer positions. For example, the pixels labeled by an upper-case letter, such as E, C, D, J, F, G, H, I, L, M, N, P, K, R, S and Q, may indicate integer position samples. The remaining lower-case letters, such as c1, bb, d1, a, b, c, d, e, f, g, h, i, j, k, m, n, p, q, r, c2, s, d2, c3, gg, and d3, may indicate interpolated sub-pixel positions that may need to be interpolated. Three passes of filtering may be required to derive the sample values for positions e, g, p and r, for example. More specifically, two 4-tap filtering and 2-tap averaging may be utilized to obtain interpolated pixels e, g, p and r.
For example, to obtain interpolated pixel e, the following three passes may be utilized: A first pass 101 may utilize 4-tap filtering to integer positions (E; C; D; J) to obtain interpolated pixel bb. Similarly, 4-tap filtering during the first pass 101 may be applied to integer positions (F; G; H; I), (L; M; N; P) and (K; R; S; Q) to obtain interpolated pixels b, s and gg, respectively. During a second pass 103 interpolated pixel j may be interpolated utilizing interpolated pixels bb, b, s, and gg, obtained from the first pass 101. Once interpolated pixel j is obtained during the second pass 103, pixel e may be interpolated in a third pass 105. During the third pass 105, pixel e may be interpolated by utilizing 2-tap averaging of the integer position G and the interpolated pixel j.
Further limitations and disadvantages of conventional and traditional approaches will become apparent to one of skill in the art, through comparison of such systems with some aspects of the present invention as set forth in the remainder of the present application with reference to the drawings.